package com.enba.rbacadmin.module.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.enba.rbacadmin.module.auth.controller.req.RoleAddUpdateReq;
import com.enba.rbacadmin.module.auth.controller.req.SaveRolePermissionReq;
import com.enba.rbacadmin.module.auth.entity.Role;
import java.util.List;
import java.util.Set;

/**
 * 角色表 服务类
 *
 * @author 恩爸编程
 * @since 2025-02-28
 */
public interface IRoleService extends IService<Role> {

  /**
   * 新增，更新
   *
   * @param req
   * @return
   */
  boolean saveOrUpdate(RoleAddUpdateReq req);

  /**
   * 分配权限
   *
   * @param req
   * @return
   */
  boolean saveRolePermission(SaveRolePermissionReq req);

  /**
   * 获取用户角色id集合
   *
   * @param userId 用户id
   * @return
   */
  Set<Long> getUserRoleIdSet(Long userId);

  /**
   * 批量删除
   *
   * @param ids id集合
   * @return
   */
  boolean deleteBatch(List<Integer> ids);

  /**
   * 删除
   *
   * @param id id
   * @return
   */
  boolean delete(Integer id);
}
